package org.dromara.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.system.domain.WbDemandList;
import org.dromara.system.domain.WbItemInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 项目视图对象 wb_item_info
 *
 * @author Lion Li
 * @date 2024-03-22
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = WbItemInfo.class)
public class WbItemInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 项目id
     */
    private Long id;
    /**
     * 公告类型（doci-change：变更公告，doci-bid：采购公告）
     */
    @ExcelProperty(value = "公告类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "doci-change=变更公告,doci-bid=采购公告,doc-spec=招标公告")
    private String docType;
    @ExcelProperty(value = "项目编号")
    private String itemId;
    /**
     * 产品名称
     */
    @ExcelProperty(value = "产品名称")
    private String itemName;
    @ExcelProperty(value = "预计发布时间")
    private String publishTime;
    /**
     * 文件获取截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ExcelProperty(value = "文件获取截止时间")
    private String obtainingFileDeadline;
    /**
     *开标时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ExcelProperty(value = "开标时间")
    private String bidOpenTime;
    /**
     *类型
     */
    @ExcelProperty(value = "类型")
    private String type;
    /**
     *地点位置
     */
    @ExcelProperty(value = "地点位置")
    private String location;
    /**
     * 招标人
     */
    @ExcelProperty(value = "招标人")
    private String tenderee;
    /**
     * 类别ID
     */
    private Long categoryId;
    /**
     * 描述
     */
    @ExcelProperty(value = "描述")
    private String remark;
    private String status;
    /**
     * 当前登录用户关注公司的数量
     */
    private String followNum;
    /**
     * 用户关注ID
     */
    private String xcxFollowId;
    private Long orgId;
    private String purType;
    private String prjIntroduce;
    private String chgNoticeCont;
    private String contact;
    private String contactBy;
    private String tel;
    private String telBy;
    private String email;
    private String tax;
    private String bidAgt;
    private String bidAgtAddr;
    private Long onlineBidNoticeId;
    /**
     * 分包数量
     */
    private Long pageNum;

    private List<WbDemandListVo> listWbDemandList;

    /**
     * 数据来源（ECP、IMPORT）
     */
    private String dataSource;

    /**
     * 数据来源（区分菜单入口）
     */
    private String dataSourceMenu;
}
